package com.balabala.gym_user.controller.admin;

import com.balabala.gym_enum.ResultEnum;
import com.balabala.gym_user.pojo.dto.AddVipCardDTO;
import com.balabala.gym_user.pojo.dto.VipCardQueryDTO;
import com.balabala.gym_user.pojo.vo.VipCardPageVO;
import com.balabala.gym_user.pojo.vo.VipCardUpdateVO;
import com.balabala.gym_user.service.VipCardService;
import com.balabala.result.Result;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @Author 何涛
 * @Date: 2023/05/01/ 15:01
 * @description 会员卡相关接口
 */
@RestController
@Slf4j
@CrossOrigin
@Api(tags = "会员卡后台接口")
@RequestMapping("/admin/vipCard")
public class VipCardController {
    @Autowired
    VipCardService vipCardService;

    @PostMapping("/add")
    @ApiOperation("添加会员卡信息")
    public Result add(@RequestBody AddVipCardDTO addVipCardDto)
    {
        log.info("添加一条会员卡信息");
        return Result.ok(ResultEnum.GENERALLY_SUCCESS,vipCardService.addVipCard(addVipCardDto));
    }

    @PostMapping("/getVipCardPageList")
    @ApiOperation("会员卡信息分页列表")
    public Result getVipCardPageList(@RequestBody VipCardQueryDTO vipCardQueryDto)
    {
        log.info("查询会员卡信息，条件是：{}",vipCardQueryDto.toString());
        PageInfo<VipCardPageVO> vipCardPageVos=vipCardService.getVipCardPageList(vipCardQueryDto);
        return Result.ok(vipCardPageVos.getList(),vipCardPageVos.getTotal());
    }

    @DeleteMapping("/deleteById")
    @ApiOperation("根据id删除会员卡信息")
    public Result deleteById(@RequestParam Long id)
    {
        log.info("根据id删除会员卡信息");

        return Result.ok(ResultEnum.GENERALLY_SUCCESS,vipCardService.deleteVipCardById(id));
    }

    @GetMapping("/{id}")
    @ApiOperation("根据id查询会员卡信息")
    public Result findById(@PathVariable Long id)
    {
        log.info("根据id查询会员信息：{}",id);
        return Result.ok(ResultEnum.GENERALLY_SUCCESS,vipCardService.findById(id));
    }

    @PutMapping("update")
    @ApiOperation("修改会员卡信息")
    public Result update(@RequestBody VipCardUpdateVO vipCardUpdateVo)
    {
        log.info("修改会员卡信息：{}",vipCardUpdateVo.toString());
        return Result.ok(ResultEnum.GENERALLY_SUCCESS,vipCardService.updateVipCard(vipCardUpdateVo));
    }
}
